/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations;

import ar.edu.utn.frsf.cidisi.upcolbpip.businessinterfaces.BusinessInterface;

import ar.edu.utn.frsf.cidisi.upcolbpip.collaborativebusinessprocesses.CollaborativeBusinessProcess;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>B2B Collaboration</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getName <em>Name</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getDefinedBy <em>Defined By</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getPartners <em>Partners</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getParticipatingRoles <em>Participating Roles</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getRelationship <em>Relationship</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getProcesses <em>Processes</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getDocumentTypes <em>Document Types</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getDocuments <em>Documents</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getBusinessInterfaces <em>Business Interfaces</em>}</li>
 * </ul>
 * </p>
 *
 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration()
 * @model
 * @generated
 */
public interface B2BCollaboration extends EObject {
	/**
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Name</em>' attribute.
	 * @see #setName(String)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_Name()
	 * @model
	 * @generated
	 */
	String getName();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getName <em>Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Name</em>' attribute.
	 * @see #getName()
	 * @generated
	 */
	void setName(String value);

	/**
	 * Returns the value of the '<em><b>Defined By</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Defined By</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Defined By</em>' containment reference.
	 * @see #setDefinedBy(CollaborativeAgreement)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_DefinedBy()
	 * @model containment="true" required="true"
	 * @generated
	 */
	CollaborativeAgreement getDefinedBy();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BCollaboration#getDefinedBy <em>Defined By</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Defined By</em>' containment reference.
	 * @see #getDefinedBy()
	 * @generated
	 */
	void setDefinedBy(CollaborativeAgreement value);

	/**
	 * Returns the value of the '<em><b>Partners</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.TradingPartner}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Partners</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Partners</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_Partners()
	 * @model containment="true"
	 * @generated
	 */
	EList<TradingPartner> getPartners();

	/**
	 * Returns the value of the '<em><b>Participating Roles</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.PartnerRole}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Participating Roles</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Participating Roles</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_ParticipatingRoles()
	 * @model containment="true" lower="2"
	 * @generated
	 */
	EList<PartnerRole> getParticipatingRoles();

	/**
	 * Returns the value of the '<em><b>Relationship</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2BRelationship}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Relationship</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Relationship</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_Relationship()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<B2BRelationship> getRelationship();

	/**
	 * Returns the value of the '<em><b>Processes</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.collaborativebusinessprocesses.CollaborativeBusinessProcess}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Processes</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Processes</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_Processes()
	 * @model containment="true"
	 * @generated
	 */
	EList<CollaborativeBusinessProcess> getProcesses();

	/**
	 * Returns the value of the '<em><b>Document Types</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.BusinessDocumentType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Document Types</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Document Types</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_DocumentTypes()
	 * @model containment="true"
	 * @generated
	 */
	EList<BusinessDocumentType> getDocumentTypes();

	/**
	 * Returns the value of the '<em><b>Documents</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.BusinessDocument}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Documents</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Documents</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_Documents()
	 * @model containment="true"
	 * @generated
	 */
	EList<BusinessDocument> getDocuments();

	/**
	 * Returns the value of the '<em><b>Business Interfaces</b></em>' containment reference list.
	 * The list contents are of type {@link ar.edu.utn.frsf.cidisi.upcolbpip.businessinterfaces.BusinessInterface}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Business Interfaces</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Business Interfaces</em>' containment reference list.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.B2bcollaborationsPackage#getB2BCollaboration_BusinessInterfaces()
	 * @model containment="true"
	 * @generated
	 */
	EList<BusinessInterface> getBusinessInterfaces();

} // B2BCollaboration
